package com.team9.fitness.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 用户个人信息实体
 * 
 * 存储用户的详细个人信息：
 * - 基本信息：身高、体重、性别、生日
 * - 扩展信息：个人描述、所在地
 * - 时间信息：创建时间、更新时间
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class UserProfile {

    private Long id;

    private Long userId;

    /**
     * 姓名
     */
    private String name;

    /**
     * 身高(cm)
     */
    private Double height;

    /**
     * 体重(kg)
     */
    private Double weight;

    /**
     * 性别
     */
    private String gender;

    /**
     * 生日
     */
    private LocalDate birthday;

    /**
     * 个人描述
     */
    private String des;

    /**
     * 所在地
     */
    private String location;

    /**
     * 头像URL
     */
    private String avatar;

    private LocalDateTime createdAt;

    private LocalDateTime updatedAt;

    public void setCreatedAtIfNull() {
        if (createdAt == null) {
            createdAt = LocalDateTime.now();
        }
    }

    public void setUpdatedAtIfNull() {
        updatedAt = LocalDateTime.now();
    }
}
